Python读取PDF中的表格并写入csv文件 | 您所在的位置:网站首页 › python 读取文件csv › Python读取PDF中的表格并写入csv文件 |
以前各种在网上找专门的软件来从PDF中收集数据,费时费力,还要费尽心机去找软件的“免费版”。很久没这样收集过数据了,最近试了试python从PDF中读取表格的方法,感觉很方便。同时,读取后的结果不需要再花大力气去弄格式的问题,实在是科研狗狗的福利了。 Python读取PDF中的表格比如在我的一篇文献中某一页有一张我想收集数据的表: pdf中的表格和页数注意这里的实际页数是5。 tabula我们使用比较流行的tabula来完成这项工作,同样功能的还有Camelot,但因为tabula用得很顺畅,就不再去深究了。 安装tabula:读取文件r的意思参考:https://www.geocalculate.com/7597.html 结果可以看出,读取后的结果是一个列表。 将数据写入.csv文件要将数据写入csv文件,数据最好是pandas的DataFrame形式,但上面我们得到的是一个列表,要怎么转化呢? 其实很简单,并不要转化,上面我们的len(tables)函数告诉我们这个列表里只有一个元素,所以我们使用tables[0]直接选择元素就获得了纯的数据: class 'pandas.core.frame.DataFrame':说明我们一旦选择之后,数据就是pandas的DataFrame的。 现在,在PDF相同目录下,将数据写入一个csv文件,该csv文件目前不存在: 这时再来看目录里,已经生成了csv文件: 生成的csv文件打开看看: 写入csv中的数据十分成功。 一些想法tabula.convert_into函数实际上tabula自己就可以实现将数据写入csv文件的函数,比如: 但是,当我们需要处理不同的表格(有不同的数据)时,个人感觉还是用选择一下生成到不同的表里好区分一些。 读取年份比较久的PDF一些老的pdf也是可以读的,但是可能会有些小的问题,比如一个表格被读成了两个,这时候上面的选择操作就更有必要了,同时,在我一开始的时候,使用了len(tables)来查看获得列表的长度也是这个目的。 参考https://tabula-py.readthedocs.io/en/latest/ https://www.geocalculate.com/7204.html |
CopyRight 2018-2019 实验室设备网 版权所有 |